<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      //object.defineProperty():给对象添加或修改属性，对属性可以有更加细粒度的控制。如控制是否可以被枚举
      // const Person = {name:'yinyin'}

      // Object.defineProperty(Person,'age',{
          //数据描述符
      //     value:20,
      //     //defineProperty只读，需要修改的话把默认值改为true
      //     writable:true , //控制属性是否被修改。默认值false
      //     enumerable: true, //控制属性是否可以被枚举（for in）
      //     configurable:true, //控制属性是否可以被删除

      // })
      // Person.age =21
      // for(let i in Person){
      //     console.log(i)
      // }
      // Person.name = null
      // console.log(Person.name)

      const Person = {name:'yinyin'}
      let age = 12
      Object.defineProperty(Person,'age',{
          get(){
              console.log('getter')
              return age
          },
          set(newAge){
              console.log('newAge',newAge)
              age=newAge
          }
      })
      console.log(Person.age)
      Person.age = 21
      console.log(Person.age)

    </script>
  </body>
</html>
